求解
食堂管理员(填空)
时间限制:1000ms
内存限制:128MB
小 A 成了食堂管理员。
有 n 个同学要来吃饭,邪恶的小 A 作为食堂管理员,可以决定每个人可以吃多少!
但是每个人的饭量“因人而异”。第 i 个同学能吃的食物数量的最大值由数组 a 给出:例如 a
i
=2 表示第 i 个同学可以吃 1 份或 2 份食物。
小 A 希望所有同学吃的食物总数量是 k 的倍数,请按字典序输出所有方案。
输入格式
第一行包含两个整数 n,k。
第二行包含 n 个整数 a
1
,a
2
,…,a
n
。
输出格式
输出若干行,每行输出一个满足条件的序列 A(长度为 n),并按字典序从小到大的顺序输出。
样例组
输入#1
复制
3 2
2 1 3
输出#1
复制
1 1 2
2 1 1
2 1 3
输入#2
复制
1 2
1
输出#2
复制
输入#3
复制
5 5
2 3 2 3 2
输出#3
复制
1 1 1 1 1
1 2 2 3 2
1 3 1 3 2
1 3 2 2 2
1 3 2 3 1
2 1 2 3 2
2 2 1 3 2
2 2 2 2 2
2 2 2 3 1
2 3 1 2 2
2 3 1 3 1
2 3 2 1 2
2 3 2 2 1
提示说明
【样例解释】
在样例 1 中,需要输出的序列有 3 个,按照字典序分别是 (1,1,2)、(2,1,1)、(2,1,3)。
在样例 2 中,有时候可能没有需要输出的序列,在这种情况下输出为空。
数据范围
测试点 n k a
i
1−20 1≤n≤8 2≤k≤10 1≤a
i
≤5